package br.com.projeto.actions;

import java.util.Map;

import org.apache.struts2.interceptor.SessionAware;

import br.com.projeto.bean.ProjetoBean;
import br.com.projeto.entity.EnderecoVO;
import br.com.projeto.entity.UsuarioFisicoVO;
import br.com.projeto.entity.UsuarioJuridicoVO;
import br.com.projeto.entity.UsuarioVO;

import com.opensymphony.xwork2.ActionSupport;

public class CadastroAction extends ActionSupport implements SessionAware{

	private UsuarioVO usuarioVO;
	private Integer seqUsuario;
	private Map<String, Object> session;
	
	public String execute() throws Exception {
		if(usuarioVO != null){
			ProjetoBean.inserirUsuario(usuarioVO);
			return SUCCESS;
		}else{
			inicializar();
		}
		return "cadastro";
	}
	
	public void setSession(Map<String, Object> session) {
			this.session = session;
		
	}
	
	public String alterar(){
		if(usuarioVO != null){
			ProjetoBean.alterarUsuario(usuarioVO);
			return SUCCESS;
		}else{
			usuarioVO = ProjetoBean.getUsuario((UsuarioVO)session.get("usuarioVO"));
		}
		return "alterar";
	}
	public void inicializar(){
		usuarioVO = new UsuarioVO();
		usuarioVO.setEnderecoVO(new EnderecoVO());
		usuarioVO.setUsuarioFisicoVO(new UsuarioFisicoVO());
		usuarioVO.setUsuarioJuridicoVO(new UsuarioJuridicoVO());
	}

	/**
	 * @return o usuarioVO
	 */
	public UsuarioVO getUsuarioVO() {
		return usuarioVO;
	}

	/**
	 * @param usuarioVO o usuarioVO a ser configurado
	 */
	public void setUsuarioVO(UsuarioVO usuarioVO) {
		this.usuarioVO = usuarioVO;
	}

	/**
	 * @return o seqUsuario
	 */
	public Integer getSeqUsuario() {
		return seqUsuario;
	}

	/**
	 * @param seqUsuario o seqUsuario a ser configurado
	 */
	public void setSeqUsuario(Integer seqUsuario) {
		this.seqUsuario = seqUsuario;
	}

	/**
	 * @return o session
	 */
	public Map<String, Object> getSession() {
		return session;
	}
	
}
